<?php

namespace app\modules\cruise\models;

use Yii;

/**
 * This is the model class for table "cruise".
 *
 * @property int $id
 * @property string $name 名称
 * @property string $en_name 英文名称
 * @property string $weight 重量  吨
 * @property int $num 载客人数 人
 * @property int $length 长度 米
 * @property int $width 宽度 米
 * @property int $room 客房数 间
 * @property int $ceil 楼层数 层
 * @property int $speed 船速 节
 * @property string $first 首航时间 2014 年
 * @property string $code 游轮简码
 * @property string $desc 描述
 * @property int $status 1正常  2禁用
 * @property int $user_id 管理员编号
 * @property string $created_at
 * @property string $updated_at
 */
class Cruise extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'cruise';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['weight'], 'number'],
            [['num', 'length', 'width', 'room', 'ceil', 'speed', 'status', 'user_id'], 'integer'],
            [['created_at', 'updated_at'], 'safe'],
            [['name'], 'string', 'max' => 128],
            [['en_name'], 'string', 'max' => 255],
            [['first'], 'string', 'max' => 32],
            [['code'], 'string', 'max' => 8],
            [['desc'], 'string', 'max' => 1024],
        ];
    }

     // 保存前处理
    public function beforeSave($insert) {//{{{
        if($insert){
            $this->created_at = date("Y-m-d H:i:s");
            $this->user_id    = Yii::$app->user->id;
        }
        return parent::beforeSave($insert);
    }//}}}

    //获取该邮轮下房间数量
    public function getCodeNum(){
        return $this->hasMany(RoomCode::className(), ['cruise_id' => 'id'])->onCondition(['status'=>1])->count();
    }

    // 获取对应的房间号使用数量
    public function getRoomCodeUseNum(){
        return $this->hasMany(RoomCodeUse::className(), ['cruise_id' => 'id'])->onCondition(['is_use'=>2])->count();
    }

    // 获取对应的房间号 数量
    public function getRoomCodeNum(){
        return $this->hasMany(RoomCodeUse::className(), ['cruise_id' => 'id'])->count();
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'name' => '名称',
            'en_name' => '英文名称',
            'weight' => '载重',
            'num' => '载客人数',
            'length' => '长度',
            'width' => '宽度',
            'room' => '客房数',
            'ceil' => '楼层数',
            'speed' => '船速',
            'first' => '首航时间',
            'code' => '游轮简码',
            'desc' => '描述',
            'status' => '状态',
            'user_id' => 'User ID',
            'created_at' => '创建时间',
            'updated_at' => '更新时间',
        ];
    }
}
